home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 98 / Skunkware 98.iso / src / mail / smail-3.2.tar.gz / smail-3.2.tar / smail-3.2 / CHANGES < prev    next >
Text File  |  1996-06-21  |  37KB  |  811 lines

  1. #ident     "@(#)smail:RELEASE-3_2:CHANGES,v 1.62 1996/06/21 19:30:31 woods Exp"
  2.  
  3.  
  4. WARNING:  you will have to re-generate your conf/EDITME file from
  5. scratch.  The conf/EDITME files from previous versions are not at all
  6. supported!!!
  7.  
  8. WARNING:  Your old config files may need some minor fixes -- some
  9. superfluous variables have been removed, and there are new options.
  10. If you are a leaf Internet node, try running with *NO* config files.
  11.  
  12. ----------------------------------------------------------------------------
  13. CHANGES IN THIS RELEASE (RELEASE-3_2)
  14.  
  15. The following list is an overview of the changes since 3.1.30.13.  See
  16. other lists further down in this file to discover what happened before
  17. that.
  18.  
  19.  
  20. Security:
  21.  
  22.     - few os configs use HAVE=SETEUID any more -- it is very dangerous.
  23.  
  24.     - uses 4.4bsd's more secure /usr/libexec/mail.local where possible.
  25.  
  26.     - many minor bug fixes to prevent core dumps, etc.
  27.  
  28.  
  29. Configuration:
  30.  
  31.     - removed the check_path option from the appendfile transport
  32.     driver, and from the include director (it wasn't implemented by
  33.     fopen_as_user() anyway); also removed the (redundant -- it
  34.     should have been check_path anyway) checkpath attribute from the
  35.     forwardinclude driver.
  36.  
  37.     - version numbering and tracking support vastly simplified....
  38.     this implies some variables, such as patch_number, patch_date,
  39.     and bat, have been eliminated
  40.  
  41.  
  42. Build Mechanisms:
  43.  
  44.     - support for 'make sources' and 'make nuke' (i.e. RCS/SCCS
  45.     support) was deprecated and no longer working so has been
  46.     removed from most Makefiles [we use CVS to manage sources]
  47.  
  48.     - Makefiles now expect to be run by either a SysVr2 or later
  49.     augmented make, or a modern BSD make (4.4bsd), or by GNU Make;
  50.     this is due to dependence on command-line argument passing via
  51.     environment variables [old v7 derrived/compatible makes will not
  52.     work, though there may be some way to set MAKE on their command
  53.     line which may mimic the new behavior]
  54.  
  55.  
  56. Features:
  57.  
  58.     - "mailq -v" now accepts a numerical argument and as expected
  59.     increases the debug level; the default of '1' mimics the
  60.     previous behaviour.
  61.  
  62.     - It is now possible to use regular expressions for lsearch
  63.     lookups in databases such as the aliases file.  This feature is
  64.     made use of by enclosing the expression (i.e. the left most
  65.     field of the alias entry) in double quotes (").  See the
  66.     MISC_DEFINES section in conf/EDITME-dist.
  67.  
  68.     - BERKNET and DECNET addressing (the silly old host:user and
  69.     host::user) forms are no longer supported by default.  If you
  70.     are extremely sure you need these, they can be turned on.  Read
  71.     the source to find out how.  DECNET should *never* have been
  72.     supported, and BERKNET is so dead it's not funny.  Be warned
  73.     though that this code is no longer tested, and indeed may create
  74.     parsing problems with other valid address forms which use ':'
  75.     characters as syntax elements.
  76.  
  77.     - Multi-homed machines (i.e. machines with more than one routed
  78.     interface), can now specify "listen_name" to force the SMTP
  79.     daemon to listen only on a given interface.
  80.  
  81.     - new director "altuser":  directs mail as per the user director,
  82.     using an alternate passwd format file.  This file may be
  83.     accessed by any of the standard search methods, and so the
  84.     interface looks just like that of aliasfile.
  85.  
  86.     - At long last RFC-1123 conformance for dates in headers (and
  87.     logs), i.e. 4-digit years everywhere.  Thanks to NUMATA,
  88.     Toshinori <numa@rp.open.cs.fujitsu.co.jp> for pointing this out
  89.     in a patch submitted to comp.mail.smail on 7 June 1996.
  90.  
  91.  
  92. Portability:
  93.  
  94.     - more cleanup in the conf/os defaults to allow configuration
  95.     with extremely simplified EDITME (defaults ala "vendor" config).
  96.  
  97.     - much lint removed from the code
  98.  
  99.     - beginnings of use of more portable C types, such as use of
  100.     off_t, size_t, etc.  See INSTALL for porting details.
  101.  
  102.     - support for 64bit architectures (Nigel Metheringham)
  103.  
  104.  
  105. Documentation:
  106.  
  107.     - the smail.5 manual page, split up during the 3.1.30 period,
  108.     has been permanently split into separate manual pages, one to
  109.     discuss each main configuration file.  These new pages retain
  110.     the "smail" prefix in their names to help keep them somewhat
  111.     identifiable.
  112.  
  113.  
  114. ----------------------------------------------------------------------------
  115. CHANGES IN THE 3.1.30.13 RELEASE
  116.  
  117. NOTE:  this list may not be complete....
  118.  
  119. Bug fixes:
  120.  PR#46     - Xenix portability fixes - steve@nshore.org (Stephen J. Walick)
  121.  PR#63     - Prefix string for appendfile transport was not expanded
  122.     - rmwise@mcigate.apdev.cs.mci.com (Bob_Wise)
  123.  PR#67     - Log message in fwdfile.c derefed a possibly NULL ptr 
  124.     - seveal people including root@tetrarch.mpd.co.za (J. Kean Johnston)
  125.  PR#51     - sender_host_addr not derived for incoming SMTP via inetd
  126.  PR#49     - wrong type used for optarg in pd/getopt/getopt.c
  127.  PR#81     - statp never initialised by nialias routines (caused security failures).
  128.  PR#45     - changed all gets() to fgets() for security
  129.  PR#30     - Extra newline in log messages made selectable on LOG_EXTRA_NEWLINE
  130.  PR#115 - Minor fix to strict header rewriting to prevent double qualification
  131.  PR#93  - Buffers not flushed in no verify mode (smtp receive)
  132.  PR#145 - Some SMTP temporary faults were marked as errors and not retried
  133.  PR#95  - Sometimes a 5xx code in SMTP was not acted upon correctly
  134.  PR#106 - Fixed comments in ltoival (string.c)
  135.  PR#107 - Fixed comments in EDITME-dist on retry file format
  136.  PR#108 - hash_predelivered_address could deref null pointer
  137.  PR#132 - Corrected call in queryprog.c (could core dump)
  138.  PR#88  - Fixes to field.c and enhancement to bindlib.c
  139.  PR#158 - Make checks for type of file occur before locking in forwardfile director
  140.  PR#165 - Fix to strcmpic to handle NULL strings
  141.  PR#166 - Fix to route.c to fix core dump with address like ]user@domain
  142.  PR#178 - Bind did not call res_init() - needed for bind 4.9.3
  143.  PR#182 - Transport running seteuid could try to open msglog files.
  144.  PR#193 - Fast machines could issue duplicate message IDs.
  145.  PR#181 - Unchecked fstats could lead to infinite loop
  146.  PR#155 - cosmetic changes to locking debug messages
  147.  PR#98  - broken security checks in fwdfile.c removed
  148.  PR#205 - PR#203 broke some scripts by quoting values, now only does so if required.
  149.  PR#120 - Finally got parse.c in pd/pathalias to build correctly!
  150.  PR#225 - Smail -t on message with only bcc produced non rfc822 message - now fixed
  151.  PR#229 - smail -bd (no -q int) never closed log files or checked configs for updates - now fixed
  152.  
  153.  TEMP   - Backed out part of PR#45 since it prevented compilation!!
  154.  
  155. Portability
  156.  PR#49     - HP-UX 9.0
  157.  PR#125 - Added SETGROUPS to the sunos 4 configs
  158.  PR#45  - BSD 4.4 (not quite complete).
  159.  PR#90  - Added HDB UUCP to linux
  160.  PR#164 - BSDI portability changes
  161.  PR#153 - Contributed Solaris 2.3/2.3 ports
  162.  PR#200 - Reordering of includes in appendfile.c to prevent problems on some systems.
  163.  
  164. Enhancements
  165.  PR#26  - Arguments to runq/mailq etc are interpreted as queue files to process.
  166.  PR#86  - log attempts to SMTP to verify unknown addresses
  167.  PR#87  - Make SMTP help reflect commands available
  168.  PR#159 - Make locking in forwardfile director optional
  169.  PR#141 - Rewrite router (Alan Barrett <barrett@ee.und.ac.za>) added
  170.  PR#203 - Can now dump config files out using -bP
  171.  PR#204 - Error handling changes - see smarthost and pipe
  172.  PR#5   - changes to list error handing, addition of domains attribute to directors
  173.  PR#101 - shell quote (shquote:) meta expansion put in for better security
  174.  PR#210 - New meta-expansions - shquote, gt, lt.
  175.  PR#211 - SMTP EXPN/VRFY only work if smtp_info config variable is set
  176.  PR#10  - ESMTP support
  177.  PR#62  - resolve_timeout times out things defered in directors/routers
  178.  PR#219 - Smail generated date fields now include seconds
  179.  PR#220 - Date fields now use numeric timezones with alphabetic as comment
  180.  PR#226 - Smail now derives its domain on startup if possible.
  181.  PR#227 - Man page changes [PART DONE AT PRESENT]
  182.  
  183. Changes
  184.  PR#5   - Removed GLOTZNET code - no longer needed
  185.  PR#6   - Rmemoved Peter Honeyman code from direct.c
  186.  
  187. TODO BEFORE RELEASE
  188.  PR#141 - Rewrite router needs documenting. - partially done, please check
  189.  PR#227 - Complete man page changes.
  190.  
  191. ----------------------------------------------------------------------------
  192. CHANGES IN THE 3.1.29.1 RELEASE
  193.  
  194.     This is a minor patch update to 3.1.29 fixing a set of bugs
  195.     and providing support for one new OS.
  196.  
  197.  *  The sense of the dns_search option was inverted in the bind
  198.     router.  This caused some sites behind wildcard MX records 
  199.     to have real problems.
  200.  
  201.  *  Patch to IRIX 5.x config file, as sent with Announcements
  202.  
  203.  *  A very minor security bug in the aliasfile director has been
  204.     fixed.  I haven't worked out a way of using this bug usefully
  205.     so I think it was not a real security risk.
  206.  
  207.  *  The use of #error broke some compilers.  A declaration that
  208.     was in error has also been fixed.
  209.  
  210.  *  Support for AUX 3.x in Posix environment has been added.
  211.  
  212.  *  A bit has been added to README about RFC1413
  213.  
  214.     Thanks to those contributing - the major names I have are:-
  215.     Olaf Kirch <okir@monad.swb.de> Jay Gaeta <gaeta@picker.com>
  216.     Jim Jagielski <jim@jagubox.gsfc.nasa.gov> 
  217.     Lyndon Nerenberg <lyndon@canada.unbc.edu>
  218.  
  219. ----------------------------------------------------------------------------
  220. SPECIAL NOTE
  221.     EDITME files from 3.1.28 *should* work to configure this
  222.     release, however the EDITME-dist file has been expanded
  223.     and updated significantly.  It would be best if old
  224.     configurations were applied to the new EDITME-dist file
  225.     to produce a new EDITME file.
  226.  
  227.     Please read the notes in the EDITME-dist file.
  228.  
  229. ----------------------------------------------------------------------------
  230. CHANGES IN THE 3.1.29 RELEASE
  231.  
  232.  *  Bug fixes for portability which co-incidently fix an unknown
  233.     security hole!  Thanks to Philip Hazel and Ian Kluft.
  234.  
  235.  *  Bug fix to SMTP/retry code, also merged in earlier fixes to
  236.     the SMTP/retry code which had not made the main code tree.
  237.  
  238.  *  Various changes from tron including new log format (switchable
  239.     at compile time - see SMAIL_LOG_STYLE), internet format from_
  240.     lines, fixed smtpd banners etc.  [MAN PAGES NOT YET UPDATED]
  241.     The 3.1.28 log format is the default for this release, but
  242.     the log format default WILL change in the next release.
  243.  
  244.  *  Added fixes for 2 major security bugs, one in forwardfile
  245.     handling, one in DEBUG file handling, both allowing arbitary
  246.     files to be created by any user on some or all platforms.
  247.  
  248.  *  New RFC1413 code - replacing old TAP patches. See man pages
  249.     for details.  Also new structure allows other identification
  250.     schemes to be added more easily.
  251.  
  252.  *  Add in modified bindlib code (from Nigel Metheringham).
  253.     Sigificant extra functionality and more modular design.
  254.  
  255.  *  Integrate in patches to speed up queue reprocessing by hashing
  256.     out addresses that have already failed/succeeded delivery
  257.     before they are passed to the routers.  This is a big win
  258.     for mailing lists using the bind router.
  259.  
  260.  *  Integrate in changes for queue grades.  This makes it possible
  261.     to determine which grades of mail are delivered immediately,
  262.     and which are just queued for later processing.  The grades
  263.     processed by any one queue run can also be configured.
  264.     This adds 2 config variables - delivery_grades & runq_grades,
  265.     and one command line flag - -oG (documented in smail.5/8).
  266.  
  267.  *  Add in quote metavariable function (previous documented, but unimplemented)
  268.  
  269.  *  Add additional config files, update EDITME for new configs.
  270.  
  271.  
  272. CONTRIBUTORS TO RELEASE 3.1.29
  273.     Contributors include:- Philip Hazel, Ronald S Karr, Ian Kluft and
  274.     others from the smail development team.
  275.  
  276.     The source distribution was co-ordinated by Nigel Metheringham,
  277.     who is undoubtably responsible for any added errors.
  278.     I apologise for any contributors I missed - some of the patches
  279.     date back 2 years and have no listed contributor.
  280.  
  281. ----------------------------------------------------------------------------
  282. CHANGES IN THE 3.1.28 RELEASE
  283.  
  284. Changes in this release
  285.  
  286.  *  Add retry file lock timeouts, so that one process getting a lock
  287.     when another process has a retry file lock will not wait forever.
  288.     This is important for preventing blocking of queue-runs as a
  289.     result of a single message transfer waiting for an extended time
  290.     out.  This was contributed by Chip Salzenberg, as an extension to
  291.     his original host retry management support.
  292.  
  293.  *  New router driver: rerouter, submitted by Uwe Doering.  This new
  294.     router can reroute UUCP-zone paths for greater efficiency, or to
  295.     correct known routing defects.  It can also be used, in a limited
  296.     mode, for rerouting bounce messages. See the driver source, and
  297.     the smail(5) man page for details. This code is experimental, and
  298.     I have some reservations concerning some of its semantics, so use
  299.     at your own risk.
  300.  
  301.  *  Changed the format for log entries generated by smail.  The new
  302.     log entry formats are courtesy of Uwe Doering.  I am not quite
  303.     sure if I like them, but they are quite a lot more readable than
  304.     the old ones.  However, grepping is more difficult, given that the
  305.     entries now take several lines.
  306.  
  307.  *  Finally changed write_log and panic functions to use ANSI C-style
  308.     variable-argument declarations, rather than traditional C.  The
  309.     particular usage of variable-argument functions in smail was
  310.     causing problems with some C compilers.
  311.  
  312.  *  Add INCLUDE_UTIME_H to the sun_os4 configuration file.  This is
  313.     needed to get struct utimbuf.
  314.  
  315.  *  Add seteuid/setegid for HP-UX 8.0 as macros that use
  316.     setresuid/setresgid.  This allows use of shared NFS mounted
  317.     mailbox directories.
  318.  
  319.  *  Add SETEUID to HAVE list for sys5.4.
  320.  
  321.  *  Add CPPFLAGS of "-systype bsd43" to mips-bsd43 configuration
  322.     file, which is needed to get correct include files for
  323.     BSD-universe compilation.
  324.  
  325.  *  Fix spelling of tm_zone structure tag for use with MIPS and
  326.     NeXT machines, or other machines that can get the timezone from
  327.     struct tm.
  328.  
  329.  *  Removed C++/G++ support from the sdbm.h include file.  This was
  330.     causing problems compiling on some systems, and is uneeded in the
  331.     smail build environment, in any case.
  332.  
  333.  
  334. CONTRIBUTORS TO RELEASE 3.1.28
  335.  
  336. Contributors to this release include Knut-Hevard Aksnes, Neal Becker,
  337. Kevin Darcy, Uwe Doering, Hillel Markowitz, and Chip Salzenberg.
  338.  
  339.  
  340. ----------------------------------------------------------------------------
  341. CHANGES IN THE 3.1.27 RELEASE
  342.  
  343. Release 3.1.27 is a patch release to smail3.1.26.  This release is
  344. primarily a bug fix, portability-enhancement release.  The total size
  345. of the patch is larger than I expected it to be, based on the number
  346. of bugs fixed, but the changes aren't very intrusive, so users with
  347. custom enhancements should not have too many problems integrating them
  348. into this release.
  349.  
  350. Also, at the time of the 3.1.27 release, I have a reasonably large
  351. backlog of changes that I intend to include in a near-term release.
  352. However, some of the fixes in this release are of sufficiently high
  353. priority that I don't want to delay the release further to include any
  354. more changes.
  355.  
  356. Changes in this release:
  357.  
  358.  *  A bug in the DNS lookup routines was fixed which was causing core
  359.     dumps in dn_expand().
  360.  
  361.  *  The SHELL variable can now be set on the make command line.  This
  362.     allows the use of alternate, /bin/sh-compatible shells.  Some
  363.     systems (notably Ultrix and Xenix) have /bin/sh bugs which can be
  364.     worked around by using a different shell.  I have also tried to
  365.     reduce the complexity of some shell scripts, in hopes that more
  366.     native shells will work correctly without needing to introduce
  367.     workarounds.
  368.  
  369.  *  Add an AUTH_DOMAINS list to the EDITME file (alternately,
  370.     auth_domains in the config file) for setting a list of domains for
  371.     which your machine is authoritative.  This prevents the smarthost
  372.     router from matching non-existing hosts in domains for which your
  373.     host has complete routing information.  I included this in this
  374.     release, despite the fact that it is an enhancement, because the
  375.     change is small and because interactions with the smarthost router
  376.     have caused significant confusion lately.  paths files can be used
  377.     for similar purposes, but smail has come to be used more
  378.     extensively on pure Internet machines, which often lack paths
  379.     files.  Explaining why paths files must be used has become more
  380.     trouble for me than it is worth.
  381.  
  382.  *  The visible_domains and more_hostnames config file variables can
  383.     now be set with the names "domains" and "gateway_names" for
  384.     compatibility with the EDITME file.  Again, explaining the
  385.     differences here were becoming more trouble than the trouble of
  386.     just making this change.
  387.  
  388.  *  Some problems with uses of the tolower() function have (I hope)
  389.     been fixed.  Unfortunately (I guess), I don't have any non-POSIX
  390.     systems any more, so I can't tell if my fixes are sufficient.
  391.  
  392.  *  Some changes to the motorolla delta system configuration file were
  393.     contributed by Francesco Potorti` <pot@fly.cnuce.cnr.it>.
  394.  
  395.  *  Updates to the A/UX samples and conf/os files were added, as
  396.     contributed by Bob Denny.
  397.  
  398.  *  A typo in the next2.0 configuration file was fixed.  Contributors
  399.     working on NeXT systems have been driving me a bit nuts, given
  400.     that their editor appears to add newlines and blank lines in the
  401.     middle of patch files.  I usually have to apply their patch files
  402.     by hand and I haven't always managed to compensate.
  403.  
  404.  *  A typo in the sun_os4 configuration file was fixed.  This one was
  405.     purely my fault; I can't blame it on anyone else.
  406.  
  407.  *  Nigel Metheringham contributed conf/os/mips-bsd4.3.
  408.  
  409.  *  Some problems with timezones were (hopefully) corrected for NeXT
  410.     machines.
  411.  
  412.  *  I completely rewrote conf/os/isc2.2.1.  I ripped out all of the
  413.     POSIX features.  Attempts to use POSIX features ran into too many
  414.     header file problems.  Also, what worked with the version of ISC
  415.     that I have access to didn't work with isc3.0.  The new file
  416.     should be sufficiently generic to work with most recent releases
  417.     of Interactive.  I have NOT tested this with gcc.  If this
  418.     configuration file doesn't work with gcc, then don't use gcc.
  419.  
  420.  *  For systems that have the dbm.h or ndbm.h file in an awkward
  421.     location, the MISC_DEFINES variables DBM_INCLUDE and NDBM_INCLUDE
  422.     can be set to indicate the include paths to use.  See
  423.     conf/os/template for details.
  424.  
  425.  *  A size_t reference in string.c, which was causing problems
  426.     compiling on a number of systems, was changed to an "int".
  427.  
  428.  *  The Date header now indicates (by default) the time that the spool
  429.     file was created, rather than the time of message delivery.
  430.  
  431.  *  Some typos in the smail(5) man page, with respect to UK-only bind
  432.     attributes, were fixed.  The attribute names should now appear
  433.     when you format the man page.
  434.  
  435.  *  I changed some of the scripts in samples/bsmtp to work better in
  436.     the face of queue directories that exceed ARGMAX.  Some alternate
  437.     scripts were contributed which I may use instead, in a future
  438.     release.
  439.  
  440.  *  I changed the sender_proto (the name supplied after the "with"
  441.     keyword in Received lines) for batched-SMTP input to "bsmtp".
  442.     Compressed, batched input is now "cbsmtp".
  443.  
  444.  *  Several bugs were fixed in the samples/generic/* file.  In
  445.     particular, for directors a missing ':' was added and a comment in
  446.     the "lists" entry describing sender_okay was corrected.  For
  447.     transports, notify_comsat was added to the default "local"
  448.     transport.
  449.  
  450.  *  The program invocation caused by invoking smail as "newaliases" or
  451.     with the "-bi" option, was changed to reset the effective user and
  452.     group IDs to the real user and group IDs.  The previous release
  453.     did (correctly) reset the uid and gid if -oA was used to specify
  454.     an alternate aliases file, but it probably allowed any user to
  455.     rebuild the regular alias file.  I say probably, because a bug was
  456.     causing the uid and gid to be set to random stack garbage, which
  457.     must have been 0 on most systems that tried the feature.
  458.  
  459.  *  The accept() call on some systems (notably some SVR4 variants,
  460.     though not the one I use) fail if descriptors 0 and 1 aren't in
  461.     use.  Smail now opens /dev/null on descriptors 0 and 1, when
  462.     operating as a daemon.
  463.  
  464.  *  The spool file format was changed (in an upward compatible, though
  465.     not backward-compatible fashion) so that blank arguments do not
  466.     screw up the argument list stored in spool files.  In earlier
  467.     releases, a blank argument, such as -F "", could corrupt the spool
  468.     file, since it used a blank line to separate an argument list from
  469.     the header list.  I am rather surprised that this bug has managed
  470.     to stay around so long.  It is an original design flaw.
  471.  
  472.  *  The HELO, RCPT TO, and MAIL FROM requests in SMTP now require a
  473.     non-empty argument.  However, the argument to HELO is still not
  474.     checked for validity.
  475.  
  476.  *  An extraneous utimbuf declaration was removed from src/sysdep.c
  477.     that was causing difficulties with compilation on some systems.
  478.  
  479.  *  The files contrib/micnet/*.dif were removed.  These patch files
  480.     were no longer relevent, since the files that they were relative
  481.     to have changed substantially.
  482.  
  483.  *  Split changes into a separate file from the README file.  It is
  484.     likely that the README file will split further in future releases.
  485.     Some users have commented the the README file has become a bit
  486.     unwieldy.
  487.  
  488. A short list of changes not included in 3.1.27, which will likely be
  489. included in 3.1.28:
  490.  
  491.  *  Some authentication of the sending hostname, based on IP addresses
  492.     versus the name supplied in the HELO line to SMTP.
  493.  
  494.  *  Some enhancements to the message-retry/message-timeout logic,
  495.     including logic to remove stale files.  For now, the following
  496.     shell command can be used periodically to remove stale files:
  497.  
  498.     find /usr/spool/smail/retry -type -f -mtime +7 -exec rm {} \;
  499.  
  500.     Removing files older than the message-retry interval is reasonably
  501.     safe, since message-timeout logic is based on the modify time of a
  502.     message spool file, not on retry files.
  503.  
  504.  *  A rerouter driver, submitted by Uwe Doering.  To remain
  505.     consistent with previous statements, I must restate that I dislike
  506.     hosts that do auto-rerouting.  However, this appears to be
  507.     necessary on the European continent, given the rather arbitrary
  508.     and beaurocratic nature of goings on there.
  509.  
  510.  *  Significant changes to the logging code, to make log entries much
  511.     more readable, if less grep-able.  The changes were submitted by
  512.     Uwe Doering.  It will be relatively trivial to convert log files
  513.     for use with grep.  Perl scripts should have little problem with
  514.     the new format, although be warned that all existing perl scripts
  515.     will have to be rewritten for use with the next release.  The
  516.     smaillog program will be modified to account for the new format,
  517.     since it is included in the release.
  518.  
  519.  
  520. CONTRIBUTORS TO RELEASE 3.1.27
  521.  
  522. Contributors to this release include Bob Denny, Uwe Doering, Greg Hackney,
  523. Philip Hazel, Ron Heiby, Nigel Metheringham, Jim O'Connor, Chip Salzenberg,
  524. Brian Taylor, Bill Trost, and Stephen J. Walick.
  525.  
  526.  
  527. ----------------------------------------------------------------------------
  528. CHANGES IN THE 3.1.26 RELEASE
  529.  
  530. Release 3.1.26 is a patch release to smail3.1.25.  This release is
  531. primarily a functionality enhancement release.  A number of bugs have
  532. been fixes as well.
  533.  
  534. The total number of changes is quite large.  As a result, people with
  535. customizations which were not included in 3.1.26 may have a fair amount
  536. of work to do.
  537.  
  538. Important enhancements in this release:
  539.  
  540.  *  Greatly enhanced expansion strings, with conditionals and file
  541.     lookups.  The original version of this code was written by
  542.     Chip Salzenberg.
  543.  
  544.  *  Per-transport-configurable header insertion and removal based
  545.     on the new expansion code.  In addition, the "From:" header can
  546.     now be configured, including the ability to use a file to find
  547.     a long form for local users (e.g, to get ronald.s.karr).  The
  548.     configurable header insertion/removal support can be used to
  549.     support the Content-Length field, by adding the following
  550.     generic attributes to the local transport:
  551.  
  552.     remove_header="Content-Length",
  553.     append_header="Content-Length: $body_size"
  554.  
  555.     Of some value with SVR4, you can also add a Content-Type
  556.     header field, if no Content-Type field already exists, with:
  557.  
  558.     append_header="${if !header:Content-Type Content-Type: text}"
  559.  
  560.  *  The default Received: header now contains the "from" and "with"
  561.     keywords, where such information is available.  Information is
  562.     determined from the HELO line in SMTP, the From_ line in regular
  563.     uucp mail, or it can be set using the -oMr and -oMs options, for
  564.     compatibility with sendmail.
  565.  
  566.  *  Smail can now limit connections to the SMTP server, as long as
  567.     a standalone smail SMTP daemon is used, rather than using inetd
  568.     to start smtpd per connection attempt.  Two levels are provided:
  569.     a maximum number of connections that yield immediate message
  570.     delivery, and a maximum number of allowed connections.  This can
  571.     greatly help the maximum load that smail places on a server,
  572.     while allowing fast delivery if the server has light mail
  573.     activity.  This code was contributed by Chip Salzenberg.
  574.  
  575.  *  Smail now tracks host accessibility for SMTP delivery.  If a host
  576.     is down, then mail to that host will be deferred immediately
  577.     (rather than waiting for a connection timeout) until a definable
  578.     time period expires.  In addition, mail that is undeliverable for
  579.     a definable time period will be bounced, rather than hanging around
  580.     in the smail queues forever.  The parameters for retry times and
  581.     message timeouts are configurable on a per-host or per-domain
  582.     basis.  Several implementations of these capabilities were
  583.     submitted, including implementations by Syd Weinstein and Dan Danz.
  584.     I decided on a version by Chip Salzenberg, which included per-host
  585.     configurability, and which (eventually) supported the host
  586.     accessibility tracking.
  587.  
  588.  *  Interactive SMTP receive processes can now timeout.  By default,
  589.     SMTP command receipt times out after 5 minutes, and receipt of a
  590.     message after a DATA statement times out after 2 hours.  This was
  591.     added after an urgent, but gentle, request of Heiko Schlichting,
  592.     who had 100 receiver processes hanging around waiting forever for
  593.     SMTP input.  The specific timeouts can be modified in the run-time
  594.     config file by setting smtp_receive_command_timeout (default 5m)
  595.     and smtp_receive_message_timeout (default 2h).
  596.  
  597.  *  Support was added for JANET reverse-order domain lookups in the
  598.     bind router.  Contact Philip Hazel <ph10@cus.cam.ac.uk> for
  599.     complete support.  The smail3 release contains only that code
  600.     that needs to be within the smail binary itself.
  601.  
  602.  *  Added support for NeXT netinfo databases (from Dan Danz).
  603.  
  604.  *  The DNS can now be queried within the tcpsmtp transport, without
  605.     involving the bind router driver.  In previous releases, MX
  606.     records could be used only if addresses were resolved by the
  607.     bind router.  Now, under configuration control, the tcpsmtp
  608.     transport driver can locate MX records itself, such as for
  609.     mail routed by a local paths file or by a queryprogram router.
  610.     This support was added, at my request, by Chip Salzenberg.
  611.  
  612.  *  Added a -oX flag to smail that sets the TCP port number used to
  613.     listen for SMTP connections.  This is helpful in testing, because
  614.     this (along with the "service" attribute to the tcpsmtp driver)
  615.     can be used to setup a test network that operates independently
  616.     of an existing SMTP network.  This can be used to make sure that
  617.     smail works on your network before replacing an existing mailer.
  618.  
  619.  *  The smail installation process now attempts to preserve replaced
  620.     binaries from your original operating system in .SAV files.  Thus,
  621.     your existing /bin/rmail and /usr/lib/sendmail will not be
  622.     removed, even if smail is reinstalled several times.  Previous
  623.     releases would (sometimes) keep one backup version (with a .O
  624.     suffix), which would then be removed on the next install.  The
  625.     new process makes a .SAV backup file, if one does not exist
  626.     already, allowing a one-time backup copy on the first installation
  627.     of smail.  .SAV backup files are made only for files that are
  628.     considered likely to provided in the base operating system.
  629.  
  630.  *  The uuwho utility now uses searches for domain information, if
  631.     a full hostname match is not found.  For example, the command:
  632.  
  633.     uuwho mitsu.veritas.com
  634.  
  635.     will find the entry for .veritas.com, which does exist while
  636.     no entry for mitsu.veritas.com exists.  This was added by
  637.     Chip Salzenberg.
  638.  
  639.  *  By "popular demand" :include: in mailing list and alias files
  640.     can now be followed by white-space.  This is for compatibility
  641.     with sendmail.  Comments are NOT allowed after :include:.  For
  642.     example, the following line:
  643.  
  644.     :include: /list-directory/mailing-list
  645.  
  646.     would previously have resulted in errors, but will now result
  647.     in inclusion of addresses in the file /list-directory/mailing-list.
  648.  
  649.  *  The -bi option from sendmail is now supported, and newaliases is
  650.     now yet another link to smail.  This support was added to allow
  651.     existing YP makefiles (which call /usr/lib/sendmail to rebuild
  652.     the YP mail.aliases dbm file) to use smail3 replacing sendmail.
  653.     The original version of this enhancement was submitted by
  654.     Bruce Jerrick.
  655.  
  656.  *  The sdbm library is now integrated in the smail release.  Systems
  657.     that do not have a native ndbm library now use the sdbm functions
  658.     to provide multiple DBM-like files.  Native dbm (not ndbm)
  659.     libraries can be used only if they support the dbmclose() function.
  660.     This was added by Chip Salzenberg, who was planning to use this
  661.     in association with his host status monitoring code, but later
  662.     realized the error of his ways.  But, the changes were left in
  663.     because they seemed reasonable.
  664.  
  665.  *  The comsat daemon is now supported in the appendfile driver, and
  666.     is enabled, by default, in the "local" transport.
  667.  
  668.  *  Mail which results in all recipients being eliminated (such as
  669.     through duplicate elimination or sender elimination within a
  670.     mailing list), will generate a bounce message.
  671.  
  672. Some other changes:
  673.  
  674.  *  The sender_okay flag (for configuring removal of the sender
  675.     from aliasing and mailing list expansion) can now be configured
  676.     from the EDITME file.
  677.  
  678.  *  Pathalias was updated to match the most recent release available
  679.     on uunet.
  680.  
  681.  *  The compile process now echoes the results of variable substitition.
  682.     The previous release would generate lines such as:
  683.  
  684.     . ./defs.sh; $CC $CFLAGS $INCLUDES -c foo.c
  685.  
  686.     now, compiles will generate something like:
  687.  
  688.     gcc -O -I/usr/include -c foo.c
  689.  
  690.     make -n will still yield annoyingly small amounts of real information.
  691.  
  692.  *  A sufficiently high debugging level will now enable debugging in
  693.     the resolver library.
  694.  
  695.  *  Included some minor revisions to the bind router by Syd
  696.     Weinstein, to fetch A records as a second pass after fetching
  697.     MX records.  Apparently, there are differences in what different
  698.     servers return in a request for MX records (some return A
  699.     records, too, some don't).
  700.  
  701.  *  Sytems that require an alternate set of #include files to compile
  702.     programs that use TCP/IP and sockets can define those #include
  703.     files in the conf/os files or in the EDITME file.  See
  704.     conf/os/template for details.
  705.  
  706.  *  Added some AUX support contributed by Robert B. Denny, which can
  707.     be found in samples/AUX-support.  Most of the changes relate to
  708.     printing documentation.  Some sample configuration files are
  709.     also included.
  710.  
  711.  *  Smail now uses SO_REUSEADDR and some appropriate descriptor closes,
  712.     to allow the smtp/queue-run daemon to be restarted cleanly even
  713.     if a receiver process has been forked.  Previous releases could get
  714.     errors in the bind() call indicating an address already in use.
  715.  
  716.  *  A new attribute was added to the gethostbyname router
  717.     (only_local_domain) that disables matching of hosts outside of
  718.     the local domain.  This was addedy by Dan Danz.
  719.  
  720.  *  Man pages were previously installed with mode 555.  They are now
  721.     installed with mode 444.
  722.  
  723.  *  Added a NOTES directory containing messages that I have sent or
  724.     received that illustrate various points of interest.
  725.  
  726.  *  Building of uuwho databases now differentiates between a #N line
  727.     introducing a hostname, and a #NOTE, or #North America line
  728.     introducing a random comment.  Recent map entries caused
  729.     extra, bogus, entries to be added to uuwho databases.
  730.  
  731.  *  "A" records are now used in the order returned by DNS resolver
  732.     lookups.  Previously releases would reverse the A records, due
  733.     to the way these records were being added to a list, internally.
  734.     The RFCs require that A records be used in order, since they may
  735.     be sorted by network preference.
  736.  
  737.  *  The local-* transports for local-form delivery to remote hosts
  738.     now does proper hop-count checking.  These transports use the
  739.     new local_xform attribute which does local-form transformations
  740.     without indicating that delivery is actually local.
  741.     
  742.  
  743. Some bug fixes:
  744.  
  745.  *  Mail to systems with no MX records, but an A record, will now be
  746.     handled correctly by the bind router.  I have regular posted a
  747.     patch for this to various newsgroups and mailing lists, but did
  748.     not include the fix in an earlier official patch release.
  749.  
  750.  *  Fixed some minor problems with bounce-message generation.  Bounce
  751.     messages are generated by reinvoking smail and sending the
  752.     bounce messages as a batched SMTP script.  The sender was
  753.     specified as <>, in accordance with RFC822, which smail considered
  754.     a remote address.  However, treating this as mail from a remote
  755.     system was inappropriate, so an alternate sender token <+>, is
  756.     now used to indicate a locally-generated bounce message.
  757.  
  758.  *  Nul-terminated some generated strings that were not consistently
  759.     nul terminated.
  760.  
  761.  *  Fixed some problems resulting from routers that resolve to the
  762.     local host, requiring further routing of the remainder address.
  763.  
  764.  *  Fixed some problems in the trusted-code logic that was running
  765.     into problems with the SMTP interaction generated by MH.
  766.  
  767.  *  Errors in .forward files now generate bounces to real-<username>
  768.     rather than to the postmaster.
  769.  
  770.  *  NEWS_SPOOL_DIR was not being stored in the defs.h file, yielding
  771.     incorrect behavior from uuwho.
  772.  
  773.  *  Fixed some problems with interactions between the -t and -f options.
  774.  
  775.  *  Fixed some problems with varargs usage in log.c.
  776.  
  777.  *  Include <vfork.h> for Suns, to avoid a problem interacting with
  778.     -O on Sun4's that could generate core dumps.
  779.  
  780.  *  Fixed some segmentaion violations caused by bogus @foo addresses.
  781.  
  782.  *  Fixed most (all?) places where smail was using a value immediately
  783.     after it was freed.  This allows smail to work, unmodified, with
  784.     the SVR3 -lmalloc library, or other versions of malloc that don't
  785.     leave data from the last free unmodified.
  786.  
  787.  *  get_sender_addr(), which generates the sender address in various
  788.     important contexts, was returning the same data between multiple
  789.     calls, when it should have been returning different data.
  790.  
  791.  
  792. CONTRIBUTORS TO RELEASE 3.1.26
  793.  
  794. This patch was made possible primarily through the work of Chip
  795. Salzenberg, who contributed the first version of the enhanced string
  796. expansion code (though I extended it rather a lot), the SMTP connection
  797. limiting code, the reorganized bind code, plus the changes for the
  798. retry file.  He also contributed a large number of minor enhancements
  799. and bug fixes.
  800.  
  801. I don't have a good record of who else contributed code, fixes and
  802. suggestions for this patch, but here is a partial list:
  803. Tomas Ahl, Jack Bailey, Alan P Barrett, Mark Bixby, Randy Bush,
  804. Dan Danz, Bob Denny, Jon Diekema, Michael Faurot, David J. Fiander,
  805. Bill Hargen, Philip Hazel, Bill Heiser, Peter Honeyman, Bruce Jerrick,
  806. Patrick Lee, Simon Leinen, Hillel Markowitz, Bill Masek, Jan-Piet Mens,
  807. Les Mikesell, Lyndon Nerenberg, Jim O'Connor, Jim Pickering, Steve Piette,
  808. Francesco Potorti`, Heiko Schlichting, David Schmidt, Monty Solomon,
  809. Brian Taylor, Bill Trost, Gary S. Trujillo, Stephen J. Walick,
  810. Lauren Weinstein, Syd Weinstein, and Andreas Wettengel.
  811.